home *** CD-ROM | disk | FTP | other *** search
- ***********************************************************************
- *
- * MyFont 1.0
- *
- * (c) 1994 One of Binary Mystery (Jan Skypala)
- *
- * $VER: MyFont.s 37.1 (19.2.94)
- *
- ***********************************************************************
-
- incdir 'Include:'
- include 'exec/exec_lib.i'
- include 'exec/memory.i'
- include 'graphics/graphics_lib.i'
- include 'graphics/text.i'
- include 'diskfont/diskfont_lib.i'
-
- _SysBase equ 4
-
- Start move.l (_SysBase).w,a6
- move.l #ResidentEnd-ResidentStart,d4
- move.l d4,d0
- moveq.l #MEMF_PUBLIC,d1
- jsr _LVOAllocMem(a6) ;allocate memory
- move.l d0,a0
- move.l d0,a4
- lea ResidentStart(pc),a1
- .loop move.b (a1)+,(a0)+ ;and move resident part
- dbra d4,.loop ;there
- PatchIt lea diskfontname(pc),a1
- moveq #0,d0
- jsr _LVOOpenLibrary(a6) ;open diskfont.library
- beq.b .gfx
- move.l d0,a1
- move.w #_LVOOpenDiskFont,a0
- moveq.l #DiskFont-ResidentStart,d0
- add.l a4,d0
- jsr _LVOSetFunction(a6) ;patch OpenDiskFont()
- move.l d0,OpenDiskFont-ResidentStart(a4)
- .gfx lea gfxname(pc),a1
- moveq #0,d0
- jsr _LVOOpenLibrary(a6) ;open graphics.library
- beq.b .end
- move.l d0,a1
- move.w #_LVOOpenFont,a0
- moveq.l #GfxFont-ResidentStart,d0
- add.l a4,d0
- jsr _LVOSetFunction(a6) ;patch OpenFont()
- move.l d0,OpenFont-ResidentStart(a4)
- moveq.l #0,d0
- .end rts
-
- ***********************************************************************
- ResidentStart
- GfxFont cmp.w #8,ta_YSize(a0) ;is it size 8?
- bne.b .nosize8
- move.l a1,-(a7)
- movem.l a0/d0,-(a7)
- move.l (a0),a0
- lea TopazName(pc),a1
- .loop move.b (a0)+,d0 ;is it 'topaz.font'?
- cmp.b (a1)+,d0
- bne.b .notopaz
- tst.b d0
- bne.b .loop
- movem.l (a7)+,a0/d0
- lea ThinpazName(pc),a1 ;change it to
- move.l a1,(a0) ;'thinpaz.font'
- bra.b ..
- .notopaz movem.l (a7)+,a0/d0
- .. move.l (a7)+,a1
- .nosize8 move.l OpenFont(pc),-(a7) ;and do normal OpenFont()
- rts
- DiskFont cmp.w #8,ta_YSize(a0) ;is it size 8?
- bne.b .nosize8
- move.l a1,-(a7)
- movem.l a0/d0,-(a7)
- move.l (a0),a0
- lea TopazName(pc),a1
- .loop move.b (a0)+,d0 ;is it 'topaz.font'
- cmp.b (a1)+,d0
- bne.b .notopaz
- tst.b d0
- bne.b .loop
- movem.l (a7)+,a0/d0
- lea ThinpazName(pc),a1 ;change it to
- move.l a1,(a0) ;'thinpaz.font'
- bra.b ..
- .notopaz movem.l (a7)+,a0/d0
- .. move.l (a7)+,a1
- .nosize8 move.l OpenDiskFont(pc),-(a7) ;and do OpenDiskFont()
- rts
- OpenDiskFont dc.l 0
- OpenFont dc.l 0
- gfxname dc.b 'graphics.library',0
- diskfontname dc.b 'diskfont.library',0
- TopazName dc.b 'topaz.font',0
- ThinpazName dc.b 'thinpaz.font',0
- ResidentEnd
- version dc.b '$VER: MyFont 37.1 (19/2/94)',0
- ***********************************************************************
-